package com.ncepu.clubmanagement.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Affair {

    // 事务大类型选项
    public static Integer COMMITTEE_TYPE = 1;  // 事务大类型选项1
    public static Integer CLUB_TYPE = 2; // 事务大类型选项2

    // 事务小类型选项
    public static Integer COMMITTEE_ADD_CLUB = 1;  // 事务小类型选项1
    public static Integer COMMITTEE_MODIFY_CLUB = 2; // 事务小类型选项2

    public static Integer CLUB_ADD_PERSON = 1;  // 事务小类型选项1
    public static Integer CLUB_REMOVE_PERSON = 2; // 事务小类型选项2
    public static Integer CLUB_ADD_MULTIMEDIA = 3;  // 事务小类型选项3
    public static Integer CLUB_MODIFY_MULTIMEDIA = 4;  // 事务小类型选项4


    private Integer affairId;  // 事务id（重用）
    private Integer bigAffairType;  // 事务大类型（参考上方）
    private Integer affairType;  // 事务小类型（具体分工参考上方）

    private Integer initiatorId;  // 发起人
    private LocalDateTime createTime;  // 时间
    private String reason;  // 原因
    private Integer clubId;  // 俱乐部id

    private String value1;
    private Integer value2;
    private Integer value3;
    private String value4;
    private String value5;
    private Integer value6;

    public boolean isAffairLegal(){
        if (this.bigAffairType == null || this.affairType == null || this.initiatorId == null ){
            return false;
        }

        // 逻辑：社团类事务中必须传入社团id
        if (this.bigAffairType.equals(CLUB_TYPE) && this.clubId == null){
            return false;
        }

        return true;
    }



//    public static Affair generateAffair(Integer BigAffairType, Integer affairType,
//                                        Integer initiator, Map<Integer,Object> datamap){
//        return  new Affair(null,BigAffairType,affairType,initiator,null, datamap);
//    }
}





